1 ------------------------------------------------------------------------- 2 drawElements Quality Program Documentation 3 ----------------------------------------------- 4 5 Copyright 2014 The Android Open Source Project 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18 ------------------------------------------------------------------------- 19 20 OpenGL ES 3.0 Negative API tests - Function listing 21 22 Legend: 23 o = Tests done 24 x = Will not generate errors, no negative test 25 26 ----------------------------------------------- 27 Transform feedback 28 ----------------------------------------------- 29 30 ES3 31 o glBindTransformFeedback (GLenum target, GLuint id); 32 o glDeleteTransformFeedbacks (GLsizei n, const GLuint* ids); 33 o glGenTransformFeedbacks (GLsizei n, GLuint* ids); 34 o glPauseTransformFeedback (void); 35 o glResumeTransformFeedback (void); 36 o glBeginTransformFeedback (GLenum primitiveMode); 37 o glEndTransformFeedback (void); 38 o glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode); 39 o glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name); 40 41 ----------------------------------------------- 42 Asynchronous queries 43 ----------------------------------------------- 44 45 ES3 46 o glBeginQuery (GLenum target, GLuint id); 47 o glDeleteQueries (GLsizei n, const GLuint* ids); 48 o glEndQuery (GLenum target); 49 o glGenQueries (GLsizei n, GLuint* ids); 50 51 ----------------------------------------------- 52 Special functions 53 ----------------------------------------------- 54 55 ES2 56 x glFinish (void); 57 x glFlush (void); 58 o glHint (GLenum target, GLenum mode); 59 60 ES3 61 o glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); 62 o glDeleteSync (GLsync sync); 63 o glFenceSync (GLenum condition, GLbitfield flags); 64 o glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); 65 66 ----------------------------------------------- 67 State functions 68 ----------------------------------------------- 69 70 ES2 71 o glDisable (GLenum cap); 72 o glEnable (GLenum cap); 73 o glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); 74 o glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); 75 o glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); 76 o glGetBooleanv (GLenum pname, GLboolean* params); 77 o glGetError (void); 78 o glGetFloatv (GLenum pname, GLfloat* params); 79 o glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); 80 o glGetIntegerv (GLenum pname, GLint* params); 81 o glGetProgramiv (GLuint program, GLenum pname, GLint* params); 82 o glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); 83 o glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); 84 o glGetShaderiv (GLuint shader, GLenum pname, GLint* params); 85 o glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); 86 o glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); 87 o glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); 88 o glGetString (GLenum name); 89 o glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); 90 o glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); 91 o glGetUniformfv (GLuint program, GLint location, GLfloat* params); 92 o glGetUniformiv (GLuint program, GLint location, GLint* params); 93 o glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); 94 o glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); 95 o glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); 96 o glIsEnabled (GLenum cap); 97 98 ES3 99 o glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); 100 o glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); 101 o glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); 102 o glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64* params); 103 o glGetBufferPointerv (GLenum target, GLenum pname, GLvoid** params); 104 o glGetFragDataLocation (GLuint program, const GLchar *name); 105 o glGetIntegeri_v (GLenum target, GLuint index, GLint* data); 106 o glGetInteger64i_v (GLenum target, GLuint index, GLint64* data); 107 o glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); 108 o glGetInteger64v (GLenum pname, GLint64* params); 109 o glGetQueryiv (GLenum target, GLenum pname, GLint* params); 110 o glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params); 111 o glGetStringi (GLenum name, GLuint index); 112 o glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values); 113 o glGetUniformuiv (GLuint program, GLint location, GLuint* params); 114 o glGetUniformBlockIndex (GLuint program, const GLchar* uniformBlockName); 115 o glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices); 116 o glGetVertexAttribIiv (GLuint index, GLenum pname, GLint* params); 117 o glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params); 118 119 ----------------------------------------------- 120 Transforms & Fragment API functions 121 ----------------------------------------------- 122 123 ES2 124 x glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); 125 o glBlendEquation (GLenum mode); 126 o glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); 127 o glBlendFunc (GLenum sfactor, GLenum dfactor); 128 o glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); 129 x glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); 130 o glDepthFunc (GLenum func); 131 x glDepthMask (GLboolean flag); 132 x glDepthRangef (GLclampf zNear, GLclampf zFar); 133 x glSampleCoverage (GLclampf value, GLboolean invert); 134 o glScissor (GLint x, GLint y, GLsizei width, GLsizei height); 135 o glStencilFunc (GLenum func, GLint ref, GLuint mask); 136 o glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); 137 x glStencilMask (GLuint mask); 138 o glStencilMaskSeparate (GLenum face, GLuint mask); 139 o glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); 140 o glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); 141 o glViewport (GLint x, GLint y, GLsizei width, GLsizei height); 142 143 ----------------------------------------------- 144 FBO API functions 145 ----------------------------------------------- 146 147 ES2 148 o glBindFramebuffer (GLenum target, GLuint framebuffer); 149 o glBindRenderbuffer (GLenum target, GLuint renderbuffer); 150 o glCheckFramebufferStatus (GLenum target); 151 o glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); 152 o glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); 153 o glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); 154 o glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); 155 o glGenFramebuffers (GLsizei n, GLuint* framebuffers); 156 o glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); 157 o glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); 158 159 ES3 160 o glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); 161 o glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); 162 o glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments); 163 o glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); 164 o glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); 165 166 ----------------------------------------------- 167 Buffer and Buffer Object API functions 168 ----------------------------------------------- 169 170 ES2 171 o glBindBuffer (GLenum target, GLuint buffer); 172 o glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); 173 o glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); 174 o glClear (GLbitfield mask); 175 x glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); 176 x glClearDepthf (GLclampf depth); 177 x glClearStencil (GLint s); 178 o glDeleteBuffers (GLsizei n, const GLuint* buffers); 179 o glGenBuffers (GLsizei n, GLuint* buffers); 180 o glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); 181 182 ES3 183 o glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); 184 o glBindBufferBase (GLenum target, GLuint index, GLuint buffer); 185 o glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint* value); 186 o glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint* value); 187 o glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat* value); 188 o glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); 189 o glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); 190 o glDrawBuffers (GLsizei n, const GLenum* bufs); 191 o glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); 192 o glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); 193 o glReadBuffer (GLenum mode); 194 o glUnmapBuffer (GLenum target); 195 196 ----------------------------------------------- 197 Shader API functions 198 ----------------------------------------------- 199 200 ES2 201 o glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); 202 o glAttachShader (GLuint program, GLuint shader); 203 o glCreateShader (GLenum type); 204 o glCompileShader (GLuint shader); 205 x glCreateProgram (void); 206 o glDeleteProgram (GLuint program); 207 o glDeleteShader (GLuint shader); 208 o glDetachShader (GLuint program, GLuint shader); 209 o glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); 210 o glGetAttribLocation (GLuint program, const GLchar* name); 211 o glGetUniformLocation (GLuint program, const GLchar* name); 212 o glLinkProgram (GLuint program); 213 x glReleaseShaderCompiler (void); 214 o glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); 215 o glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length); 216 o glUniform1f (GLint location, GLfloat x); 217 o glUniform1fv (GLint location, GLsizei count, const GLfloat* v); 218 o glUniform1i (GLint location, GLint x); 219 o glUniform1iv (GLint location, GLsizei count, const GLint* v); 220 o glUniform2f (GLint location, GLfloat x, GLfloat y); 221 o glUniform2fv (GLint location, GLsizei count, const GLfloat* v); 222 o glUniform2i (GLint location, GLint x, GLint y); 223 o glUniform2iv (GLint location, GLsizei count, const GLint* v); 224 o glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); 225 o glUniform3fv (GLint location, GLsizei count, const GLfloat* v); 226 o glUniform3i (GLint location, GLint x, GLint y, GLint z); 227 o glUniform3iv (GLint location, GLsizei count, const GLint* v); 228 o glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); 229 o glUniform4fv (GLint location, GLsizei count, const GLfloat* v); 230 o glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); 231 o glUniform4iv (GLint location, GLsizei count, const GLint* v); 232 o glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 233 o glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 234 o glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 235 o glUseProgram (GLuint program); 236 o glValidateProgram (GLuint program); 237 238 ES3 239 o glBindSampler (GLuint unit, GLuint sampler); 240 o glDeleteSamplers (GLsizei count, const GLuint* samplers); 241 o glGenSamplers (GLsizei count, GLuint* samplers); 242 o glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary); 243 o glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint* params); 244 o glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat* params); 245 o glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length); 246 o glProgramParameteri (GLuint program, GLenum pname, GLint value); 247 o glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); 248 o glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint* param); 249 o glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); 250 o glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat* param); 251 o glUniform1ui (GLint location, GLuint v0); 252 o glUniform2ui (GLint location, GLuint v0, GLuint v1); 253 o glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); 254 o glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); 255 o glUniform1uiv (GLint location, GLsizei count, const GLuint* value); 256 o glUniform2uiv (GLint location, GLsizei count, const GLuint* value); 257 o glUniform3uiv (GLint location, GLsizei count, const GLuint* value); 258 o glUniform4uiv (GLint location, GLsizei count, const GLuint* value); 259 o glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); 260 o glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 261 o glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 262 o glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 263 o glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 264 o glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 265 o glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 266 267 ----------------------------------------------- 268 Texture API functions 269 ----------------------------------------------- 270 271 ES2 272 o glActiveTexture (GLenum texture); 273 o glBindTexture (GLenum target, GLuint texture); 274 o glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); 275 o glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); 276 o glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); 277 o glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); 278 o glDeleteTextures (GLsizei n, const GLuint* textures); 279 o glGenerateMipmap (GLenum target); 280 o glGenTextures (GLsizei n, GLuint* textures); 281 o glPixelStorei (GLenum pname, GLint param); 282 o glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); 283 o glTexParameterf (GLenum target, GLenum pname, GLfloat param); 284 o glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); 285 o glTexParameteri (GLenum target, GLenum pname, GLint param); 286 o glTexParameteriv (GLenum target, GLenum pname, const GLint* params); 287 o glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); 288 289 ES3 290 o glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); 291 o glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); 292 o glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); 293 o glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); 294 o glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); 295 o glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); 296 o glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); 297 298 ----------------------------------------------- 299 Vertex Array API functions 300 ----------------------------------------------- 301 302 ES2 303 o glDisableVertexAttribArray (GLuint index); 304 o glDrawArrays (GLenum mode, GLint first, GLsizei count); 305 o glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); 306 o glEnableVertexAttribArray (GLuint index); 307 o glVertexAttrib1f (GLuint indx, GLfloat x); 308 o glVertexAttrib1fv (GLuint indx, const GLfloat* values); 309 o glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); 310 o glVertexAttrib2fv (GLuint indx, const GLfloat* values); 311 o glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); 312 o glVertexAttrib3fv (GLuint indx, const GLfloat* values); 313 o glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); 314 o glVertexAttrib4fv (GLuint indx, const GLfloat* values); 315 o glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); 316 317 ES3 318 o glBindVertexArray (GLuint array); 319 o glDeleteVertexArrays (GLsizei n, const GLuint* arrays); 320 o glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount); 321 o glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount); 322 o glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices); 323 o glGenVertexArrays (GLsizei n, GLuint* arrays); 324 o glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer); 325 o glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); 326 o glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); 327 o glVertexAttribI4iv (GLuint index, const GLint* v); 328 o glVertexAttribI4uiv (GLuint index, const GLuint* v); 329 o glVertexAttribDivisor (GLuint index, GLuint divisor); 330 331 ----------------------------------------------- 332 Rasterization API functions 333 ----------------------------------------------- 334 335 ES2 336 o glCullFace (GLenum mode); 337 o glFrontFace (GLenum mode); 338 o glLineWidth (GLfloat width); 339 x glPolygonOffset (GLfloat factor, GLfloat units); 340 341 ----------------------------------------------- 342 Named object usage 343 ----------------------------------------------- 344 345 ES2 346 o glIsBuffer (GLuint buffer); 347 o glIsFramebuffer (GLuint framebuffer); 348 o glIsProgram (GLuint program); 349 o glIsRenderbuffer (GLuint renderbuffer); 350 o glIsShader (GLuint shader); 351 o glIsTexture (GLuint texture); 352 353 ES3 354 o glIsQuery (GLuint id); 355 o glIsSampler (GLuint sampler); 356 o glIsSync (GLsync sync); 357 o glIsTransformFeedback (GLuint id); 358 o glIsVertexArray (GLuint array); 359